module.exports =
    /******/ (function (modules) { // webpackBootstrap
    /******/ 	// The module cache
    /******/
    var installedModules = {};
    /******/
    /******/ 	// The require function
    /******/
    function __webpack_require__(moduleId) {
        /******/
        /******/ 		// Check if module is in cache
        /******/
        if (installedModules[moduleId]) {
            /******/
            return installedModules[moduleId].exports;
            /******/
        }
        /******/ 		// Create a new module (and put it into the cache)
        /******/
        var module = installedModules[moduleId] = {
            /******/            i: moduleId,
            /******/            l: false,
            /******/            exports: {}
            /******/
        };
        /******/
        /******/ 		// Execute the module function
        /******/
        modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
        /******/
        /******/ 		// Flag the module as loaded
        /******/
        module.l = true;
        /******/
        /******/ 		// Return the exports of the module
        /******/
        return module.exports;
        /******/
    }

    /******/
    /******/
    /******/ 	// expose the modules object (__webpack_modules__)
    /******/
    __webpack_require__.m = modules;
    /******/
    /******/ 	// expose the module cache
    /******/
    __webpack_require__.c = installedModules;
    /******/
    /******/ 	// define getter function for harmony exports
    /******/
    __webpack_require__.d = function (exports, name, getter) {
        /******/
        if (!__webpack_require__.o(exports, name)) {
            /******/
            Object.defineProperty(exports, name, {enumerable: true, get: getter});
            /******/
        }
        /******/
    };
    /******/
    /******/ 	// define __esModule on exports
    /******/
    __webpack_require__.r = function (exports) {
        /******/
        if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {
            /******/
            Object.defineProperty(exports, Symbol.toStringTag, {value: 'Module'});
            /******/
        }
        /******/
        Object.defineProperty(exports, '__esModule', {value: true});
        /******/
    };
    /******/
    /******/ 	// create a fake namespace object
    /******/ 	// mode & 1: value is a module id, require it
    /******/ 	// mode & 2: merge all properties of value into the ns
    /******/ 	// mode & 4: return value when already ns object
    /******/ 	// mode & 8|1: behave like require
    /******/
    __webpack_require__.t = function (value, mode) {
        /******/
        if (mode & 1) value = __webpack_require__(value);
        /******/
        if (mode & 8) return value;
        /******/
        if ((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
        /******/
        var ns = Object.create(null);
        /******/
        __webpack_require__.r(ns);
        /******/
        Object.defineProperty(ns, 'default', {enumerable: true, value: value});
        /******/
        if (mode & 2 && typeof value != 'string') for (var key in value) __webpack_require__.d(ns, key, function (key) {
            return value[key];
        }.bind(null, key));
        /******/
        return ns;
        /******/
    };
    /******/
    /******/ 	// getDefaultExport function for compatibility with non-harmony modules
    /******/
    __webpack_require__.n = function (module) {
        /******/
        var getter = module && module.__esModule ?
            /******/            function getDefault() {
                return module['default'];
            } :
            /******/            function getModuleExports() {
                return module;
            };
        /******/
        __webpack_require__.d(getter, 'a', getter);
        /******/
        return getter;
        /******/
    };
    /******/
    /******/ 	// Object.prototype.hasOwnProperty.call
    /******/
    __webpack_require__.o = function (object, property) {
        return Object.prototype.hasOwnProperty.call(object, property);
    };
    /******/
    /******/ 	// __webpack_public_path__
    /******/
    __webpack_require__.p = "/dist/";
    /******/
    /******/
    /******/ 	// Load entry module and return exports
    /******/
    return __webpack_require__(__webpack_require__.s = 140);
    /******/
})
    /************************************************************************/
    /******/ ({

        /***/ 140:
        /***/ (function (module, __webpack_exports__, __webpack_require__) {

            "use strict";
// ESM COMPAT FLAG
            __webpack_require__.r(__webpack_exports__);

// EXTERNAL MODULE: external "element-ui/lib/utils/vue-popper"
            var vue_popper_ = __webpack_require__(5);
            var vue_popper_default = /*#__PURE__*/__webpack_require__.n(vue_popper_);

// EXTERNAL MODULE: external "throttle-debounce/debounce"
            var debounce_ = __webpack_require__(18);
            var debounce_default = /*#__PURE__*/__webpack_require__.n(debounce_);

// EXTERNAL MODULE: external "element-ui/lib/utils/dom"
            var dom_ = __webpack_require__(2);

// EXTERNAL MODULE: external "element-ui/lib/utils/util"
            var util_ = __webpack_require__(3);

// EXTERNAL MODULE: external "vue"
            var external_vue_ = __webpack_require__(7);
            var external_vue_default = /*#__PURE__*/__webpack_require__.n(external_vue_);

// CONCATENATED MODULE: ./packages/tooltip/src/main.js


            /* harmony default export */
            var main = ({
                name: 'ElTooltip',

                mixins: [vue_popper_default.a],

                props: {
                    openDelay: {
                        type: Number,
                        default: 0
                    },
                    disabled: Boolean,
                    manual: Boolean,
                    effect: {
                        type: String,
                        default: 'dark'
                    },
                    arrowOffset: {
                        type: Number,
                        default: 0
                    },
                    popperClass: String,
                    content: String,
                    visibleArrow: {
                        default: true
                    },
                    transition: {
                        type: String,
                        default: 'el-fade-in-linear'
                    },
                    popperOptions: {
                        default: function _default() {
                            return {
                                boundariesPadding: 10,
                                gpuAcceleration: false
                            };
                        }
                    },
                    enterable: {
                        type: Boolean,
                        default: true
                    },
                    hideAfter: {
                        type: Number,
                        default: 0
                    },
                    tabindex: {
                        type: Number,
                        default: 0
                    }
                },

                data: function data() {
                    return {
                        tooltipId: 'el-tooltip-' + Object(util_["generateId"])(),
                        timeoutPending: null,
                        focusing: false
                    };
                },
                beforeCreate: function beforeCreate() {
                    var _this = this;

                    if (this.$isServer) return;

                    this.popperVM = new external_vue_default.a({
                        data: {node: ''},
                        render: function render(h) {
                            return this.node;
                        }
                    }).$mount();

                    this.debounceClose = debounce_default()(200, function () {
                        return _this.handleClosePopper();
                    });
                },
                render: function render(h) {
                    var _this2 = this;

                    if (this.popperVM) {
                        this.popperVM.node = h(
                            'transition',
                            {
                                attrs: {
                                    name: this.transition
                                },
                                on: {
                                    'afterLeave': this.doDestroy
                                }
                            },
                            [h(
                                'div',
                                {
                                    on: {
                                        'mouseleave': function mouseleave() {
                                            _this2.setExpectedState(false);
                                            _this2.debounceClose();
                                        },
                                        'mouseenter': function mouseenter() {
                                            _this2.setExpectedState(true);
                                        }
                                    },

                                    ref: 'popper',
                                    attrs: {
                                        role: 'tooltip',
                                        id: this.tooltipId,
                                        'aria-hidden': this.disabled || !this.showPopper ? 'true' : 'false'
                                    },
                                    directives: [{
                                        name: 'show',
                                        value: !this.disabled && this.showPopper
                                    }],

                                    'class': ['el-tooltip__popper', 'is-' + this.effect, this.popperClass]
                                },
                                [this.$slots.content || this.content]
                            )]
                        );
                    }

                    var firstElement = this.getFirstElement();
                    if (!firstElement) return null;

                    var data = firstElement.data = firstElement.data || {};
                    data.staticClass = this.addTooltipClass(data.staticClass);

                    return firstElement;
                },
                mounted: function mounted() {
                    var _this3 = this;

                    this.referenceElm = this.$el;
                    if (this.$el.nodeType === 1) {
                        this.$el.setAttribute('aria-describedby', this.tooltipId);
                        this.$el.setAttribute('tabindex', this.tabindex);
                        Object(dom_["on"])(this.referenceElm, 'mouseenter', this.show);
                        Object(dom_["on"])(this.referenceElm, 'mouseleave', this.hide);
                        Object(dom_["on"])(this.referenceElm, 'focus', function () {
                            if (!_this3.$slots.default || !_this3.$slots.default.length) {
                                _this3.handleFocus();
                                return;
                            }
                            var instance = _this3.$slots.default[0].componentInstance;
                            if (instance && instance.focus) {
                                instance.focus();
                            } else {
                                _this3.handleFocus();
                            }
                        });
                        Object(dom_["on"])(this.referenceElm, 'blur', this.handleBlur);
                        Object(dom_["on"])(this.referenceElm, 'click', this.removeFocusing);
                    }
                    // fix issue https://github.com/ElemeFE/element/issues/14424
                    if (this.value && this.popperVM) {
                        this.popperVM.$nextTick(function () {
                            if (_this3.value) {
                                _this3.updatePopper();
                            }
                        });
                    }
                },

                watch: {
                    focusing: function focusing(val) {
                        if (val) {
                            Object(dom_["addClass"])(this.referenceElm, 'focusing');
                        } else {
                            Object(dom_["removeClass"])(this.referenceElm, 'focusing');
                        }
                    }
                },
                methods: {
                    show: function show() {
                        this.setExpectedState(true);
                        this.handleShowPopper();
                    },
                    hide: function hide() {
                        this.setExpectedState(false);
                        this.debounceClose();
                    },
                    handleFocus: function handleFocus() {
                        this.focusing = true;
                        this.show();
                    },
                    handleBlur: function handleBlur() {
                        this.focusing = false;
                        this.hide();
                    },
                    removeFocusing: function removeFocusing() {
                        this.focusing = false;
                    },
                    addTooltipClass: function addTooltipClass(prev) {
                        if (!prev) {
                            return 'el-tooltip';
                        } else {
                            return 'el-tooltip ' + prev.replace('el-tooltip', '');
                        }
                    },
                    handleShowPopper: function handleShowPopper() {
                        var _this4 = this;

                        if (!this.expectedState || this.manual) return;
                        clearTimeout(this.timeout);
                        this.timeout = setTimeout(function () {
                            _this4.showPopper = true;
                        }, this.openDelay);

                        if (this.hideAfter > 0) {
                            this.timeoutPending = setTimeout(function () {
                                _this4.showPopper = false;
                            }, this.hideAfter);
                        }
                    },
                    handleClosePopper: function handleClosePopper() {
                        if (this.enterable && this.expectedState || this.manual) return;
                        clearTimeout(this.timeout);

                        if (this.timeoutPending) {
                            clearTimeout(this.timeoutPending);
                        }
                        this.showPopper = false;

                        if (this.disabled) {
                            this.doDestroy();
                        }
                    },
                    setExpectedState: function setExpectedState(expectedState) {
                        if (expectedState === false) {
                            clearTimeout(this.timeoutPending);
                        }
                        this.expectedState = expectedState;
                    },
                    getFirstElement: function getFirstElement() {
                        var slots = this.$slots.default;
                        if (!Array.isArray(slots)) return null;
                        var element = null;
                        for (var index = 0; index < slots.length; index++) {
                            if (slots[index] && slots[index].tag) {
                                element = slots[index];
                            }
                            ;
                        }
                        return element;
                    }
                },

                beforeDestroy: function beforeDestroy() {
                    this.popperVM && this.popperVM.$destroy();
                },
                destroyed: function destroyed() {
                    var reference = this.referenceElm;
                    if (reference.nodeType === 1) {
                        Object(dom_["off"])(reference, 'mouseenter', this.show);
                        Object(dom_["off"])(reference, 'mouseleave', this.hide);
                        Object(dom_["off"])(reference, 'focus', this.handleFocus);
                        Object(dom_["off"])(reference, 'blur', this.handleBlur);
                        Object(dom_["off"])(reference, 'click', this.removeFocusing);
                    }
                }
            });
// CONCATENATED MODULE: ./packages/tooltip/index.js


            /* istanbul ignore next */
            main.install = function (Vue) {
                Vue.component(main.name, main);
            };

            /* harmony default export */
            var tooltip = __webpack_exports__["default"] = (main);

            /***/
        }),

        /***/ 18:
        /***/ (function (module, exports) {

            module.exports = require("throttle-debounce/debounce");

            /***/
        }),

        /***/ 2:
        /***/ (function (module, exports) {

            module.exports = require("element-ui/lib/utils/dom");

            /***/
        }),

        /***/ 3:
        /***/ (function (module, exports) {

            module.exports = require("element-ui/lib/utils/util");

            /***/
        }),

        /***/ 5:
        /***/ (function (module, exports) {

            module.exports = require("element-ui/lib/utils/vue-popper");

            /***/
        }),

        /***/ 7:
        /***/ (function (module, exports) {

            module.exports = require("vue");

            /***/
        })

        /******/
    });